import React from 'react';
import Foo from '@/extraRoutes/Foo';
import {Navigate } from 'umi';
//在React路由渲染前会执行此方法，会把routes数组传过来
//可以向里面添加新的路由配置
/* export function patchClientRoutes({ routes }){
    routes.unshift({
        path:'/foo',
        element:<Foo/>
    })
    routes.unshift({
        path:'/home',
        element:<Navigate to="/"/>
    })
} */
let extraRoutes = [];
export function patchClientRoutes({ routes }){
    routes.unshift(...extraRoutes)
}
//编写新的render方法
//ReactDOM.render();
//createRoot().render();
export function render(oldRender){
    fetch('/api/routes')//res就是响应对象时面有很多属性headers status statusText
    .then(res=>res.json())//获取响应体
    .then(routes=>{//[routes]
        extraRoutes=routes.map(route=>{
            //如果加载的模块是es module
            //require加载后得到的是一个对象，它的default属性指向es module的默认导出
            let RouteComponent = require(`@/extraRoutes/${route.component}`)
            return {
                path:route.path,
                element:React.createElement(RouteComponent.default)
            }
        });
    // 在执行oldRender的过程会执行patchClientRoutes
        oldRender();
    })
}